ifNull

inline fun <D, T : R, R> ReadOnlyProperty<D, T?>.ifNull(crossinline default: () -> R): ReadOnlyProperty<D, R>
inline fun <D, T> ReadWriteProperty<D, T?>.ifNull(crossinline default: () -> T): ReadWriteProperty<D, T>

Get from the delegate, and return default if the delegate's value is null.

default will be re-executed each time null is read.